/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.notaria.guerrasalas.bc;

import com.notaria.guerrasalas.be.Grupo;
import gob.satt.comun.jpa.Command;
import java.util.List;
import javax.persistence.EntityManager;
import oracle.toplink.essentials.config.HintValues;
import oracle.toplink.essentials.config.TopLinkQueryHints;

/**
 *
 * @author Administrador
 */
public class ListarGruposCommand implements Command<List<Grupo>> {

    private String nombre;

    public ListarGruposCommand(String nombre) {
        this.nombre = nombre;
    }

    @Override
    public List<Grupo> execute(EntityManager em) throws Exception {
        List<Grupo> grupos = null;
        if (nombre != null && !nombre.trim().equals("")) {
            grupos = (List<Grupo>) em.createNamedQuery("Grupo.findByNombre")
                    .setParameter("nombre", "%" + nombre.toUpperCase() + "%")
                    .setHint(TopLinkQueryHints.REFRESH, HintValues.TRUE)
                    .getResultList();
        } else {
            grupos = (List<Grupo>) em.createNamedQuery("Grupo.findAll")
                    .setHint(TopLinkQueryHints.REFRESH, HintValues.TRUE)
                    .getResultList();
        }
        return grupos;
    }
}
